package com.ionehe.group.common.uaa.ex.domain.service;

import com.ionehe.group.common.io.Response;
import com.ionehe.group.common.uaa.ex.dto.FunctionAddDTO;
import com.ionehe.group.common.uaa.ex.dto.FunctionUpdateDTO;

import java.util.List;

/**
 * Copyright (c) 2020 ionehe.com
 * Date: 2020/11/25
 * Time: 9:54 上午
 *
 * @author 2020年 <a href="mailto:a@ionehe.com">秀</a>
 */
public interface FunctionWriteService {

    /**
     * 上下架功能
     *
     * @param idList 功能id集合
     * @param status 功能状态 1上架 2下架
     * @return 成功或失败
     */
    Response<Boolean> upDownStand(List<Long> idList, Integer status);

    /**
     * 功能排序
     *
     * @param idUp   排序id
     * @param idDown 排序id
     * @return 成功或失败
     */
    Response<Boolean> updateSort(Long idUp, Long idDown);

    /**
     * 添加同级或子级
     *
     * @param functionAddDTO 添加功能dto
     * @return 成功或失败
     */
    Response<Boolean> addFunction(FunctionAddDTO functionAddDTO);

    /**
     * 更新功能
     *
     * @param functionUpdateDTO 更新功能dto
     * @return 成功或失败
     */
    Response<Boolean> updateFunction(FunctionUpdateDTO functionUpdateDTO);

    /**
     * 批量删除
     *
     * @param idList id集合
     * @return 成功或失败
     */
    Response<Boolean> batchDelete(List<Long> idList);

    /**
     * 批量更新状态
     *
     * @param idList id集合
     * @param status 状态
     * @return 成功或失败
     */
    Response<Boolean> batchUpdateStatus(List<Long> idList, Integer status);
}
